Stack signaling to application with lack of requested bandwidth

ABSTRACT

A system for signaling an application when a requested data rate and Quality of Service cannot be achieved using OFDM wireless data transmission, and the application proceeds by either renegotiating QoS and data rate, or waiting until they requested rate and QoS are met.

BACKGROUND OF INVENTION

1. Field of Invention

The invention relates generally to wireless communication and more particularly to a system for notifying a communication application that a requested data rate and quality of service are not available.

2. Discussion of Related Art

Frequency Division Multiplexing (FDM) is a well known process by which multiple signals are modulated on different frequency carrier waves. FDM has been used for decades in radio and television broadcast. Radio and television signals are sent and received on different frequencies, each corresponding to a different “channel.”

Orthogonal Frequency Division Multiplexing (OFDM) has also been known in the art at least since the late 1960's. In OFDM, a single transmitter transmits simultaneously on many different orthogonal frequencies. Orthogonal frequencies are frequencies that are independent with respect to the relative phase relationship between the frequencies. In OFDM, the available bandwidth is subdivided into a number of equal-bandwidth “subchannels.” OFDM is advantageous for wireless communication because it has robust performance in multipath fading. In general, OFDM based systems do not require an equalizer for reliable communications. OFDM is employed in many standards used today for wireless communication. For example, both the IEEE 802.11a wireless LAN Standard and the 802.11g wireless LAN standard rely on an implementation of OFDM for signal transmission. The next generation 802.11n wireless LAN Standard, UWB wireless PAN Standard, and mobile WiMAX all use OFDM modulation for high rate communications. One early reference describing OFDM is R. W. Chang, Synthesis of band-limited orthogonal signals for multi-channel data transmission, Bell System Technical Journal (46), 1775-1796 (1966).

OFDM thus functions by breaking one high speed data stream into a number of lower-speed data streams, which are then transmitted in parallel (i.e., simultaneously). Each lower speed stream is used to modulate a subcarrier. This creates a “multi-carrier” transmission by dividing a wide frequency band (or channel) into a number of narrower frequency bands (or subchannels), each modulated with a signal stream. By sending multiple signal streams simultaneously, each at a lower rate, multipath or Raleigh fading can be reduced or eliminated without decreasing the overall rate of transmission.

OFDM is also implemented in a variety of communications systems occurring over wires. For example, OFDM is used in Asymmetric Digital Subscriber Line (ADSL) connections that adhere to the ITU G.992.1 standard. In the ADSL context, OFDM is sometimes referred to as Discrete Multitone Modulation, or DMT. OFDM is also often used to modulate signals to be transmitted over power wires. For example, the HomePlug powerline alliance established a standard for communication over power lines in a home. The HomePlug standard uses OFDM modulation.

Over the past several years, numerous network applications have come into common use that require certain transmission characteristics to work effectively. For example, Voice-over-IP (VoIP) communication, also known as IP Telephony, Internet Telephony, or Broadband Phone, is a telephone-like system that works entirely or partially over the Internet by converting a voice signal into a digital signal that can be transmitted in Internet packets. VoIP traffic requires a minimum data transfer rate to be useable for communication. Similarly, the transmission of video content (for example, video teleconferencing or streaming multimedia) over a network typically requires certain minimum transmission characteristics to be viewable.

When the Internet was first created, there were no systems in place to insure minimum transmission characteristics. Over time, standards for Quality of Service (QoS) have developed to provide guaranteed transmission characteristics such as minimum performance or throughput, or maximum latency. QoS can be implemented within a local network or over a broader area. One reference discussing QoS is the IEEE 802.1p standard, which is implemented at the media access control (MAC) framing layer on the protocol stack.

SUMMARY OF INVENTION

This Summary provides an illustrative context for aspects of the invention, in a simplified form. It is not intended to be used to determine the scope of the claimed subject matter. Aspects of the invention are described more fully below in the Detailed Description.

Described herein are systems and methods for selecting OFDM transmission parameters based on a data rate and Quality of Service requested by an application and signaling to the application if the requested data rate and Quality of Service are not possible. The requested data rate and Quality of Service are mapped to a set of communications parameters, noise level on the OFDM subchannels is detected, and the application receives a signal if the communication parameters cannot be achieved given the noise conditions on the OFDM subchannels. The application can then decide whether it will renegotiate its requested data rate and Quality of Service, or wait until such request can be accommodated by the channel.

BRIEF DESCRIPTION OF DRAWINGS

The accompanying drawings are not intended to be drawn to scale. In the drawings, each identical or nearly identical component that is illustrated in various figures is represented by a like numeral. For purposes of clarity, not every component may be labeled in every drawing. In the drawings:

FIG. 1 is a spectrum diagram showing the subdivision of the channel bandwidth to be used into several subchannels of equal width.

FIG. 2 is a block diagram of a multi-carrier OFDM digital communication system.

FIG. 3 is a flow diagram illustrating the selection by an application of a data rate and a Quality of Service.

FIG. 4 is a flow diagram illustrating one embodiment of the invention.

FIG. 5 is a flow diagram illustrating some aspects of the invention.

FIG. 6 is a flow diagram illustrating a system implementing some aspects of the invention.

DETAILED DESCRIPTION

This invention covers a novel method for wireless communication. According to the claimed invention, an application requests a data rate and Quality of Service. The system determines the number of subchannels, the quality of the subchannels, and the power for transmission on the subchannels necessary to achieve the requested data rate and QoS. If the transmission environment is such that the selected parameters are not achievable, the system can either modify the selected parameters or signal to the application through the stack that the requested service is not possible. The invention may be implemented in hardware or software, or some combination thereof. Software implementations, for example, could be in the operating system or in a device driver. Embodiments include a system, a method, and instructions stored in a computer-readable medium.

Computer readable media can be any available media that can be accessed by a computer. By way of example, and not limitation, computer readable media may comprise computer storage media and communication media. Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, other types of volatile and non-volatile memory, any other medium which can be used to store the desired information and which can accessed by a computer, and any suitable combination of the foregoing.

The computer-readable media may be transportable such that the instructions stored thereon can be loaded onto any suitable computer system resource to implement the aspects of the present invention discussed herein. In addition, it should be appreciated that the instructions stored on the computer-readable medium, described above, are not limited to instructions embodied as part of an application program running on a host computer. Rather, the instructions may be embodied as any type of computer code (e.g., software or microcode) that can be employed to program a processor to implement the aspects of the present invention discussed below.

This invention is not limited in its application to the details of construction and the arrangement of components set forth in the following description or illustrated in the drawings. The invention is capable of other embodiments and of being practiced or of being carried out in various ways. Also, the phraseology and terminology used herein is for the purpose of description and should not be regarded as limiting. The use of “including,” “comprising,” or “having,” “containing,” “involving,” and variations thereof herein, is meant to encompass the items listed thereafter and equivalents thereof as well as additional items.

The invention may be embodied in either a wired OFDM communication system or a wireless OFDM communication system.

As shown in FIG. 1, in OFDM, the available channel bandwidth W is subdivided into a number of equal-bandwidth subchannels. Each subchannel is sufficiently narrow so that the frequency response characteristics of the subchannel are nearly ideal. The number of subchannels is the total available bandwidth divided by the bandwidth of each subchannel. The number of subchannels K can thus be expressed as:

$K = \frac{W}{\Delta\; f}$

Each subchannel k has an associated carrier wave. This carrier wave can be expressed as: x _(k)(t)=sin 2πf _(k) t

Where x_(k)(t) is the carrier wave for subchannel k as a function of time t. f_(k) is the mid-frequency of subchannel k, and k ranges from 0 to K−1. The phase of x_(k)(t) is set to zero without losing generality.

The symbol rate 1/T is set for each subchannel to be equal to the separation Δf of adjacent subcarriers. The subcarriers will thus be orthogonal over the symbol interval T, independent of the relative phase relationship between subcarriers. This relationship can be expressed as:

∫₀^(T)sin (2 π f_(k)t + ϕ_(k))sin (2 π f_(j)t + ϕ_(j))𝕕t = 0

Where f_(k)−f_(j)=n/T, n=1, 2, . . . , independent of the values of the (arbitrary) phases Φ_(k) and Φ_(y).

In an OFDM system, the symbol rate on each subchannel can be reduced relative to the symbol rate on a single carrier system that employs the entire bandwidth Wand transmits data at the same rate as the OFDM system. Hence, the symbol interval T (the inverse of the symbol rate) in the OFDM system can be expressed as: T=KT_(s) where T_(s) is the symbol interval of a single-carrier system employing the entire bandwidth W and transmitting data at the same rate as the OFDM system. For example, if the symbol rate across the entire bandwidth for one channel is 72 million symbols per second, and the channel is divided into 48 subchannels, each subchannel would only need to carry 1.5 million symbols per second to achieve the same total data rate. This lower symbol rate reduces inter-symbol interference and thus mitigates the effects of multipath fading. Accordingly, OFDM provides for superior link quality and robustness of communication.

In an OFDM system, the transmitter receives input data in the frequency domain and converts it to a time domain signal. A carrier wave is modulated by the time domain signal for wireless transmission or transmission over a wire. The receiver receives the signal, demodulates the wave, and converts the signal back to the frequency domain for further processing.

A simplified OFDM system is illustrated in FIG. 2. In the illustrated embodiment, the input data stream 201 is provided by the application to the OFDM transmitter 200. In a standard TCP/IP communications stack, this data could be received at the physical layer or data link layer; however, the invention is not limited to any particular source of data or mechanism for providing the data to the transmitter, and could be implemented in hardware or software, and at various layers of the network stack. The input data stream 201 is received by a serial-to-parallel buffer 202. The serial-to-parallel buffer 202 breaks the serial data stream up into several parallel data streams. The number of parallel data streams is equal to the number of subchannels available for OFDM broadcast, or K as used above.

In one embodiment, the serial-to-parallel buffer 202 divides the information sequence received from input data 201 into frames of B_(f) bits. The B_(f) bits in each frame are parsed into K groups, where the ith group is assigned b_(i) bits. This relationship may be expressed as:

${\sum\limits_{i = 1}^{K}b_{i}} = B_{f}$

Each of the parallel data streams generated by the serial-to-parallel buffer 202 is then sent to a multicarrier modulator 203. The multicarrier modulator 203 modulates each OFDM subcarrier with each of the parallel data streams. The multicarrier modulator 203 can be efficiently implemented by use of the Inverse Fast Fourier Transform (IFFT) algorithm to compute the time domain signal, although any algorithm may be used that converts a frequency domain signal to a time domain signal. Fast FFT algorithms have been the subject of research for decades, and there are numerous low complexity implementations that facilitate the implementation of OFDM systems.

The multicarrier modulator 203 may use any modulation scheme to modulate each of the incoming data streams. In preferred embodiments, the signals are modulated with phase shift keying (PSK) modulation, or quadrature amplitude modulation (QAM). Any PSK or QAM constellation may be used, such as those used in the wireless LAN family of standards, including 802.11a, 802.11g, and 802.11n. For example, the modulator may use 8PSK, 16-QAM, 64-QAM, 128-QAM or 256-QAM. A modulation scheme may be selected based on the required data rate, the available subchannels, the noise on each subchannel, or other factors.

In this example, the multicarrier modulator 203 thus generates K independent QAM subchannels, where the symbol rate for each subchannel is 1/T and the signal in each subchannel has a distinct QAM constellation. According to this example, the number of signal points for the ith subchannel can be expressed as: M_(i)=2^(b) ^(i)

The complex-valued signal points corresponding to the information signals on each of the K subchannels can be represented as X_(k), where k=0, 1, . . . , K−1. These symbols X_(k) represent the values of the Discrete Fourier Transform (DFT) of a multicarrier OFDM signal x(t), where the modulation on each subcarrier is QAM. Since x(t) must be a real-valued signal, its N-point DFT X_(k) must satisfy the symmetry property. Therefore, the system creates N=2K symbols from K information symbols by defining: X _(N−K) =X* _(K) , k=1,2, . . . , K−1 X′ ₀ =Re(X ₀) X _(N) =Im(X ₀)

Here X₀ is split into two parts, both of which are real. The new sequence of symbols can be expressed as X′_(k) , where k=0, 1, . . . , N−1. The N-point Inverse Direct Fourier Transform for each subchannel x_(n) can thus be expressed as:

$x_{n}\frac{1}{\sqrt{N}}{\sum\limits_{k = 0}^{N - 1}{X_{k}^{\prime}{\exp\left( {j\; 2\;\pi\; n\;{k/N}} \right)}}}$ n = 0, 1, …  , N − 1

In this equation,

$\frac{1}{\sqrt{N}}$ is a scale factor. The sequence x_(n) where 0<=n<=N−1 thus corresponds to samples of the multicarrier OFDM signal x(t), consisting of K subcarriers.

A cyclic prefix, which acts a guard interval, is added to each of the parallel modulated waves at 204. This guard interval insures that the subchannels will remain orthogonal, even if multipath fading causes the subcarriers to arrive at the receiver with some delay spread. The parallel streams with the cyclic prefix are then merged back into a single serial stream at 204. Finally, the digital data stream is converted to an analog signal 205, and output for wireless transmission.

The transmitted signal can be received by the receiver 210 and processed to recover the original data stream. First, the analog signal is converted back to a digital signal by an analog to digital converter 211. The cyclic prefix is removed and the separate subcarriers are converted back to separate streams at 212. Each parallel data stream is demodulated by a multicarrier demodulator 213, preferably with a Fast Fourier Transform (FFT) algorithm. Finally, at 214 the parallel streams are reassembled into a single serial stream and output to the receiving device 215.

As illustrated in FIG. 3, in one embodiment, an application 301 requests a data rate 302 and a Quality of Service 303. The application 301 can be any network application, including, for example, a Voice-over-IP client or a streaming video application. The data rate 302 and Quality of Service 303 requested by the application 301 may depend on the nature of the content to be transmitted. For example, high-definition video requires a higher data rate than simple voice or text communication. Voice-over-IP requires that latency or delay be less than a certain maximum amount. Communications relating to emergency services may require a very low error rate and high priority of transmission.

The requested data rate 302 is the data rate appropriate for the application 301. For example, a high definition video application could request a data rate of 22 Mbps, while an instant messenger client transmitting only text could request a much lower data rate.

Similarly, the Quality of Service 303 is the Quality of Service appropriate for the application 301. The Quality of Service can be any set of communications parameters, including, for example, parameters relating to performance, throughput, or latency. The IEEE 802.1p standard provides one example of a set of Quality of Service parameters. Under the IEEE 802.1p standard the following parameters are essential for providing a Quality of Service:

-   -   Service Availability     -   Frame loss     -   Frame missorder     -   Frame duplication     -   The transit delay experienced by frames     -   Frame lifetime     -   The undetected frame error rate     -   Maximum service data unit size supported     -   User priority     -   Throughput

Under the IEEE 802.1Q standard, the requested QoS is set to a value between 0 and 7. Each such value corresponds to a delay and probability of error. In other embodiments, an in-band protocol header contains the QoS. For example, Differentiated Services Code Point (DSCP) is stored in the Type of Service (TOS) field in the IPv4 protocol header and in the Traffic Class field in the IPv6 header. A network can be configured such that DSCP-marked traffic can have differentiated levels of service. In another embodiment, the QoS may be encoded in an out-of-band state variable. According to the claimed invention, any method may be used for requesting a QoS.

FIG. 4 illustrates the steps taken in one embodiment in response to an application's request for a particular data rate and Quality of Service. In the discussion of FIG. 4, the steps described are implemented on a transmitter. The transmitter could be part of a network card, a device driver, or a component of an operating system. The invention is not limited to any particular implementation of a transmitter, whether hardware or software.

In the embodiment illustrated in FIG. 4, the application 401 requests a data rate R and a Quality of Service q. The network interface card (NIC) or wireless standard may have a minimum transfer rate R_(min), a maximum transfer rate R_(max), or both. For example, the following maximum rates apply to various IEEE 802.11 wireless standards:

Wireless Standard R_(max) 802.11b  6 Mbps 802.11a  26 Mbps 802.11n (20 MHz) 100 Mbps 802.11n (40 MHz) 200 Mbps

At 402, if R_(min) or R_(max) is defined for the NIC or wireless standard, the transmitter checks if the requested data rate R is between R_(min) and R_(max). This test can be expressed mathematically as: R_(min)<R<R_(max)

If R is not an acceptable value, the transmitter can either signal to the application that the requested service is not possible at 403, or select another data rate at 404. The data rate selected at 404 may be the closest data rate to the requested data rate that is within the acceptable range R_(min) to R_(max).

If the requested data rate R is an acceptable value, at 405 the transmitter maps the requested data rate R and the requested QoS q to a number of OFDM subchannels K and a maximum energy level for each of those subchannels E. The number of subchannels K and maximum energy level E must be sufficient to meet the requested data rate R and QoS q. Optionally, the transmitter can include in the mapping the power level P for transmission on the K subchannels. Including a power level P is advantageous where the invention is implemented in a device that is limited by battery capacity, for example, a cell phone, Personal Digital Assistant (PDA), or laptop computer.

At 406, the transmitter detects the energy or noise level on all of the available subchannels. According to the embodiment in FIG. 4, the OFDM system provides for N subchannels. The detected energy level on each subchannel can be represented by the set D as follows: D={D₁, D₂, . . . , D_(N)}

Where D₁ is the energy level detected on the first subchannel and D₂ is the energy level detected on the second subchannel, continuing on for all N subchannels.

At 407-414, the transmitter examines each value in set D to identify the subchannels whose noise level is below the required maximum noise level E. The transmitter begins the process at 407 by setting an index variable to the first value in set D. At 408, for the selected member of set D, the transmitter compares the energy level of the selected member with the threshold value E. If the subchannel has sufficiently low noise, it is added to set C at 409. If the noise is too high, the subchannel is dropped from consideration at 412. At 410, if set C has a sufficient number of subchannels to meet the requirement K established at 405, the transmitter can begin transmitting on the selected subchannels in set C at power P at 411. If the transmitter has not identified a sufficient number of subchannels meeting the criteria, at 413 the transmitter advances to the next subchannel and continues to test each subchannel until a sufficient number of subchannels are identified, repeating steps 408-414.

In an alternative embodiment, the transmitter detects energy on subchannels individually until it has identified a sufficient number of subchannels to meet the requirements established at 405.

At 414, if the detected energy level for all of the subchannels have been tested and the transmitter has not identified a sufficient number of subchannels to meet the criteria K and E (and optionally P) established at 405, the transmitter can take any of the following actions:

-   -   At 415, the transmitter can select a new value q_(new) for the         Quality of Service. q_(new) can be any value less than q.     -   At 404, the transmitter can select a new value r_(new) for the         data rate. r_(new) can be any value less than r.     -   The transmitter could select both a lower QoS q_(new) at 415 and         a lower data rate r_(new) at 404.     -   At 403, the transmitter can signal the application 401 that the         requested R and q are not possible in the current network         environment.

One example of a means for signaling the application that the requested transmission characteristics are unavailable is the Generic QoS API (GQOS) implemented in the Microsoft Windows protocol stack, which provides feedback to the application regarding the status of the network.

In response to a notification that the requested transmission characteristics are unavailable, the application 401 can respond in several different ways. For example, if the content to be transmitted is streaming video, the application 401 might choose to transmit lower quality or more highly compressed video and thus request a lower data rate for the transmission. If the content to be transmitted is VoIP communications and a minimal QoS cannot be obtained, the application 401 might cancel the attempt to make a connection and notify the user that the communication is not possible, or alternatively it could select a higher compression level for the encoded audio and request a lower data rate R at the same QoS from the transmitter. In another embodiment, the application 401 could prompt the user that a high quality connection is not possible but ask the user whether the application 401 should attempt to communicate at a lower quality. In the case where the application attempts to create a connection with different transmission properties, the transmitter will repeat steps 402-415 with the newly requested properties.

Another aspect of the invention is the possibility of minimizing the packet assembly delay for time sensitive low data rate streams such as VoIP traffic by attempting to minimize the number of OFDM subchannels allocated for transmission. In typical high data rate OFDM systems the OFDM symbol size exceeds the size of a VoIP packet. Commonly-implemented methods to address this issue are (1) the transmitter may send a nearly empty OFDM symbol or (2) the transmitter accumulates enough voice packets to transmit a full OFDM symbol before sending. In case (1), the overall efficiency of spectrum use is reduced while in case (2) audio quality is diminished due to the increased latency from the transmitter waiting for enough packets to accumulate to transmit a full symbol.

In order to better accommodate VoIP traffic, the mapping at 405 can attempt to minimize the number of subchannels to be used K. In this embodiment, the specific transmission requirements of VoIP are satisfied without sacrificing high spectral efficiency. This embodiment could be implemented at the operating system level, where the operating system would request a certain data rate that is derived from the application along with the delay requirements. The subchannel mapping that occurs at 405-414 chooses the number of subchannels to match the requirements and channel conditions.

As illustrated in FIG. 5, in this embodiment, the operating system takes the following steps in response to a request from the application to optimize transmission characteristics to accommodate network traffic that requires low latency but does not require a full OFDM symbol to transmit at the requested rate:

-   -   The application 501 requests a QoS q at 502, where that QoS         includes low latency transmission (as for VoIP traffic) and a         data rate R at 503.     -   At 505, the Operating System 504 computes the size of the symbol         (number of bytes) based on the data rate and the maximum         packetization delay for the data stream.     -   At 506, the Operating System computes the number of subchannels         and the modulation scheme needed for transmitting the symbols         given the channel conditions.     -   The Operating System continuously adjusts the modulation scheme         and number of subchannels based on feedback from the transmitter         507.

Although VoIP is used as an illustrative example in this aspect of the invention, this aspect of the claimed invention can be applied in response to a request for transmission from any application that sends network packets smaller than a full OFDM symbol at the requested rate.

In yet another aspect of the invention the transmitter receives feedback from the receiver based on successful transmissions. This feedback could be, for example, in the form of acknowledgement packets. If no acknowledgement packets are received by the transmitter despite multiple retransmission attempts, the transmitter can conclude that the energy level given the modulation scheme is insufficient. In order to maintain the requested QoS, the transmitter can add subchannels dynamically to the set C of subchannels used for transmission. Another alternative approach in case the feedback indicates successful transmission is to lower the modulation scheme used. By selecting a lower order modulation scheme, the transmitter can achieve more robust transmission. Similarly, the lack of transmission errors over an extended period of time may be used to reduce the numbers of subchannels or increase the modulation to a higher order modulation scheme.

In another embodiment, the number of subchannels K is held constant but the transmitter selects the energy level based on the requested QoS. In this embodiment, high priority data streams are transmitted in a more robust way. For example, applications requesting QoS priority 7 under the IEEE 802.1Q standard typically transmit network control traffic, while priority 6 is used for VoIP traffic. Under IEEE 802.1Q, both priorities 6 and 7 require highly reliable transmission and low delay respectively. The transmitter selects robust transmission characteristics in response to the requested priorities, thus reducing the chance of packet errors and thus retransmissions. These characteristics could include a lower data rate or higher power transmission.

In another embodiment, an out-of-band channel is available for communication between the transmitter-receiver pair. For example, a dual band wireless access point may communicate with a dual band client. This communication could occur in the 802.11a (5 GHz) band. When the transmitter cannot identify a sufficient number of subchannels below the required energy threshold to achieve the requested QoS and data rate, the transmitter may select one of two solutions. The first solution is the preferred embodiment discussed above, wherein the transmitter signals to the application that the requested transmission characteristics are not possible, and the application may then alter the requested parameters as shown in FIG. 4. The second solution relies on the availability of reliable out-of-band signaling, as in a dual band wireless access point. In this embodiment, the application at the transmitter end of the connection can signal the application on the receiver end of the connection using the 2.4 GHz band at the lowest order modulation scheme. The signal sent from the transmitter to the receiver indicates that a requested QoS is not possible in the network environment. In this case, the receiver application may be able to accommodate a lower QoS, or the receiver may have a better signal-to-noise ratio than that detected by the transmitter. The receiver may then signal the transmitter to begin transmitting despite the energy levels detected by the transmitter.

FIG. 6 illustrates another embodiment of the invention. FIG. 6 shows a system 600 comprising an application 601, a subchannel/energy mapping module 602, a signaling module 603, and a noise detection module 604. The application 601 requests a data rate and QoS. The subchannel/energy mapping module 602 maps the requested data rate and QoS to a number of subchannels K and an energy threshold E. Independently, the noise detection module 604 detects the energy level on the available OFDM subchannels. The signaling module 603 processes the output of the noise detection module 604 and the subchannel/energy mapping module 602 to determine whether there are enough subchannels whose noise level is below the energy threshold E to meet the requirement of K subchannels. If the signaling module 603 determines that there are insufficient subchannels, it can either signal the subchannel/energy mapping module 602 to select different requirements, or it can signal the application 601 that the requested transmission characteristics are not available.

In another embodiment, the communication occurs over wires. The communication may occur over an Asymmetric Digital Subscriber Line (ADSL) system, over power lines, or over any other wired communication system implementing OFDM modulation.

In yet another embodiment, the invention relates to a computer-readable medium having computer-executable instructions for performing steps. The steps include receiving a requested data rate and Quality of Service from an application, mapping the requested transmission characteristics into a minimum number of subchannels, an energy threshold, and optionally the transmission power, identifying subchannels whose energy is below the required energy threshold, and signaling the application in the event that a sufficient number of subchannels cannot be identified.

Having thus described several aspects of at least one embodiment of this invention, it is to be appreciated various alterations, modifications, and improvements will readily occur to those skilled in the art. Such alterations, modifications, and improvements are intended to be part of this disclosure, and are intended to be within the spirit and scope of the invention. Accordingly, the foregoing description and drawings are by way of example only. 

1. A method of operating a computer to initiate a communication at a performance level requested by an application executing on the computer in conjunction with an operating system of the computer, the application generating data for transmission, the method comprising: operating the computer to perform the acts of: a) receiving in a first component of the computer separate from the application a request from the application of the computer to initiate the communication at the performance level; b) within the first component, mapping the requested performance level to a set of communications parameters, wherein the mapping comprises determining a noise level and a required number of subchannels that is required to meet the requested performance level; c) within a second component of the computer, detecting an energy level on subchannels of the plurality of subchannels; d) within a third component of the computer, determining whether a number of subchannels having an energy level below the noise level that are available is less than the required number of subchannels; e) when the number of subchannels having the energy level below the noise level is less than the required number of subchannels, by the computer: i) sending a signal to the application; and ii) in response to the signal, increasing, by the application, compression used to generate the data; and f) when the number of subchannels having the energy level below the noise level is not less than the required number of subchannels, communicating, by the computer, the data from the application using a set of subchannels of the plurality of subchannels, the set containing a number of subchannels selected based on the required number of subchannels, the number of subchannels contained in the set being less than the number of subchannels having the energy level below the noise level.
 2. The method of claim 1, wherein the communication is wireless.
 3. The method of claim 1, wherein the communication occurs over wires.
 4. The method of claim 1, wherein the performance level consists of a data rate and a Quality of Service (QoS).
 5. The method of claim 4, further comprising the act of selecting a lower data rate and repeating acts (a), (b), (c) and (d) prior to sending the signal in act (e) if the communication parameters are not available.
 6. The method of claim 1, wherein the mapping comprises selecting subchannels from the plurality of subchannels.
 7. The method of claim 1, wherein the communications parameters include a power level of transmission.
 8. The method of claim 1, wherein the mapping in act (b) minimizes the required number of subchannels that is required to meet the requested performance level.
 9. A wireless transmission system for transmitting data in response to a request from an application to transmit at a data rate and Quality of Service (QoS), the wireless transmission system comprising: a computer having a network interface, the computer comprising: an operating system comprising a protocol stack coupling the application executed by the computer to the network interface, the protocol stack having a generic quality of service interface through which the application requests the data rate and the Quality of Service(QoS); a subchannel/energy mapping module that determines a required number of subchannels from a plurality of subchannels and an energy threshold needed to meet the requested data rate and Quality of Service (QoS); a noise detection module that detects an energy level on each available subchannel; a signaling module that determines whether a number of subchannels having an energy level below a noise level is less than the required number of subchannels, wherein the signaling module signals the application that the requested data rate and Quality of Service (QoS) are not available when it is determined that the number of subchannels from the plurality of subchannels having the energy level below the noise level is less than the required number of subchannels, wherein the application is coupled to the signaling module through the protocol stack to receive a signal from the signaling module through the generic quality of service interface when the requested data rate and Quality of Service (QoS) are not available, wherein the subchannel/energy mapping module and the signaling module are within the operating system.
 10. The system of claim 9, wherein the application is a Voice-over-IP client, a streaming multimedia application, an Internet web browser, or an instant messenger client.
 11. The system of claim 9, wherein: the signaling module also signals the subchannel/energy mapping module when the requested data rate and Quality of Service (QoS) are not available; and the subchannel/energy mapping module responds to a signal from the signaling module that the requested data rate and Quality of Service (QoS) are not available by selecting a higher noise level.
 12. The system of claim 9, wherein the subchannel/energy mapping module also determines a power level for transmission.
 13. The system of claim 9, wherein the application comprises a streaming multimedia application executing on the computer and the application increases the compression of a stream when the requested data rate and Quality of Service (QoS) are not available.
 14. A computer storage device having stored thereon computer-readable instructions that, as a result of being executed by a computer having an operating system comprising a protocol stack, instruct the computer to perform a method of wireless communication, the method comprising: a) receiving from a transmitting application executed by the computer a request for a data rate and Quality of Service (QoS) required to send data to a receiving application; b) within the operating system of the computer, detecting an energy level on each of a plurality of subchannels; c) within the operating system of the computer, attempting to select a number of subchannels from a plurality of subchannels having the energy level on the subchannels below a noise level that are available to meet the requested data rate and Quality of Service (QoS); d) within the operating system of the computer, determining whether the number of subchannels having an energy level below the noise level that are available is sufficient to meet the requested data rate and Quality of Service (QoS); e) when the number of subchannels having the energy level below the noise level is not sufficient to meet the requested data rate and Quality of Service (QoS), by the computer: signaling to the transmitting application through the protocol stack that the number of subchannels having the energy level below the noise level is insufficient to achieve the requested data rate and Quality of Service (QoS); signaling, by the transmitting application, to the receiving application to indicate that the requested Quality of Service (QoS) is not available; and receiving from the receiving application, at the transmitting application, an indication that the receiving application accommodates a lower Quality of Service (QoS) to receive the data; and communicating, from the transmitting application, with the receiving application using the lower Quality of Service (QoS); f) when the number of subchannels having the energy level below the noise level is sufficient to meet the requested data rate and Quality of Service (QoS), by the computer: communicating, from the transmitting application, with the receiving application using the Quality of Service (QoS) using a set containing a number of subchannels, the number of subchannels of the set being less than the number of subchannels having the energy level below the noise level, that is determined to be sufficient to meet the requested data rate and Quality of Service (QoS).
 15. The computer storage device of claim 14, wherein the method further comprises selecting a power level for transmission.
 16. The computer storage device of claim 15, wherein the selected power level is a minimum possible power level to successfully transmit at the requested data rate and Quality of Service (QoS).
 17. The computer storage device of claim 14, wherein the selection of the number of subchannels below the noise level is done using feedback from a receiver. 